home *** CD-ROM | disk | FTP | other *** search
- ***************************************************************
- *Tama on aanisamplerin parannettu lukuohjelmisto
- * Ladataan äänitiedosto ja tulostetaan sitä STE-mallilla
- * 30.01.90 Juha Valtanen
- ***************************************************************
-
- gia equ $ffff8802 aanipiiri
- mfp equ $fffa01
-
- dmactr equ $ff8900 päällä/pois
-
- dma1 equ $ff8903 puskurin alkuosoite
- dma2 equ $ff8905
- dma3 equ $ff8907
-
- len1 equ $ff890f puskurin loppuosoite
- len2 equ $ff8911
- len3 equ $ff8913
-
- smod equ $ff8920 mode toistolle
- mwmask equ $ff8922
- mwdata equ $ff8924
-
- cr equ $0d
- lf equ $0a
-
- **********************************************************
- * tasta alkaa paaohjelma
-
- main move.l sp,a5 pointteri talteen
- lea pino,sp uusi pino
-
- move.w #20,-(sp) kursori piiloon
- move.w #0,-(sp) ei kursoria
- move.w #21,-(sp)
- trap #14
- addq.l #6,sp
-
- clr.l -(sp) super tilaan
- move.w #$20,-(sp)
- trap #1
- lea 6(sp),sp
- move.l d0,s_save entinen super pino talteen
-
- move.l 4(a5),a5 kantasivun osoite
-
- move.l a5,d0
-
- move.l 8(a5),d0 koodin pituus
- add.l #$100,d0 ja hieman lisaa
-
- move.l d0,-(sp) vapautetaan tila
- move.l a5,-(sp) kantasivusta lahtien
- move.w #0,-(sp)
- move.w #$4a,-(sp) kutsu setblock
- trap #1
- lea 12(sp),sp
-
-
- move.l #-1,-(sp) haetaan vapaan muistin maara
- move.w #$48,-(sp)
- trap #1
- lea 6(sp),sp
- move.l d0,memfree vapaan muistin määrä
-
- main2 move.l memfree,d0 varataan talletustila
- move.l d0,-(sp) varataan tilaa max
- move.w #$48,-(sp)
- trap #1
- addq.l #6,sp
-
- move.l d0,aktiivi talletusblokin alkuosoite
- move.l memfree,aklen talletus blokin max pituus
-
- mloop bsr load haetaan data muistiin
-
- move.l aktiivi,a0
- move.l aklen,d0
-
- mm1 move.b (a0),d1
- add.b #$80,d1
- move.b d1,(a0)+
- subq.l #1,d0
- bne mm1
-
-
- move.l aktiivi,d0 puskurin alkukohta
- and.l #$fffffffe,d0 parillinen osoite
- move.b d0,dma3
- lsr.l #8,d0
- move.b d0,dma2
- lsr.l #8,d0
- move.b d0,dma1
-
-
- move.l aktiivi,d0 puskurin loppuosoite
- add.l aklen,d0
- and.l #$fffffffe,d0 parillinen osoite
-
- move.b d0,len3
- lsr.l #8,d0
- move.b d0,len2
- lsr.l #8,d0
- move.b d0,len1
-
- move.w #%0000000010000001,smod
-
-
- move.w #$7ff,mwmask
- move.w #%01010001100,mwdata
-
- move.w #3,dmactr ääni päälle ja toistoa.
-
-
- loop bra loop
-
- **********************************************************************
- * load lataa tiedoston levyltä
-
-
- load move.w #$02,-(sp) avataan tiedosto
- pea name
- move.w #$3d,-(sp)
- trap #1
- lea 8(sp),sp
- move.w d0,handle
-
- move.l aktiivi,-(sp) alkuosoite
- move.l aklen,-(sp) maksimipituus
- move.w handle,-(sp)
- move.w #$3f,-(sp)
- trap #1
- lea 12(sp),sp
-
- move.l d0,aklen oikea pituus
-
- move.w handle,-(sp) suljetaan tiedosto
- move.w #$3e,-(sp)
- trap #1
- lea 4(sp),sp
-
- rts
-
- name dc.b '*.snd',0
- even
-
- ****************************************************************
- * ginit alustaa PCM piirin
-
-
- ginit lea gia,a0 pointteri aanipiiriin
- lea $fffffa01,a1
- lea $fffffc00,a6 nappaimisto acian osoite
-
- move.l #5,d0 'puhdistataan' aanipiiri
- ginit2 move.b d0,-2(a0) valitaan rekisteri
- move.b #0,(a0) nollataan se
- dbra d0,ginit2
-
- move.b #7,-2(a0) mikseri-rekistri
- move.b -2(a0),d0
- or.b #%00111111,d0 ei aania
- move.b d0,(a0)
-
- rts
- *******************************************************************
-
- text movem.l d0/a0,-(sp)
- move.l a0,-(sp)
- move.w #9,-(sp)
- trap #1
- lea 6(sp),sp
- movem.l (sp)+,d0/a0
- rts
-
-
- even
-
- s_save ds.l 1
- srsave ds.l 1
- memfree ds.l 1 vapaan muistin maara
- aktiivi ds.l 3 talletuksen osoite, max pituus, pituus
- aklen ds.l 1
- linea ds.l 1 taulukkopointteri
- handle ds.l 1
- sss ds.l 100
- pino ds.l 1
-
- end
-
-
-